home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power Programmierung
/
Power-Programmierung (Tewi)(1994).iso
/
magazine
/
msysjour
/
vol07
/
04
/
netbios2
/
wnetbios.asm
< prev
next >
Wrap
Assembly Source File
|
1992-07-01
|
6KB
|
346 lines
; Static Name Aliases
;
TITLE wnetbios.c
.8087
INCLUDELIB SLIBCE
_TEXT SEGMENT WORD PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT WORD PUBLIC 'DATA'
_DATA ENDS
CONST SEGMENT WORD PUBLIC 'CONST'
CONST ENDS
_BSS SEGMENT WORD PUBLIC 'BSS'
_BSS ENDS
$$SYMBOLS SEGMENT BYTE PUBLIC 'DEBSYM'
$$SYMBOLS ENDS
$$TYPES SEGMENT BYTE PUBLIC 'DEBTYP'
$$TYPES ENDS
DGROUP GROUP CONST, _BSS, _DATA
ASSUME DS: DGROUP, SS: DGROUP
PUBLIC _TableEntriesUsed
PUBLIC _NcbTablePtr
EXTRN NETBIOSREQUEST:FAR
EXTRN POSTMESSAGE:FAR
_BSS SEGMENT
COMM NEAR _NcbTable: 8: 12
_BSS ENDS
EXTRN _PrivPostRoutine:DWORD
_DATA SEGMENT
_TableEntriesUsed DW 00H
_NcbTablePtr DD DGROUP:_NcbTable
_DATA ENDS
_TEXT SEGMENT
ASSUME CS: _TEXT
; Line 1
; Line 13
; Line 14
; Line 15
; Line 60
PUBLIC LIBMAIN
LIBMAIN PROC FAR
push ds
pop ax
nop
inc bp
push bp
mov bp,sp
push ds
mov ds,ax
ASSUME DS: NOTHING
sub sp,6
; p = -6
; hModule = 14
; wDataSeg = 12
; cbHeapSize = 10
; lpszCmdLine = 6
; Line 69
mov WORD PTR [bp-6],OFFSET DGROUP:_NcbTable ;p
mov WORD PTR [bp-4],ds
jmp SHORT $F954
$FC955:
inc WORD PTR [bp-6] ;p
$F954:
mov ax,OFFSET DGROUP:_NcbTable+96
mov cx,ds
cmp ax,WORD PTR [bp-6] ;p
jne $L20000
cmp cx,WORD PTR [bp-4]
je $FB956
$L20000:
; Line 70
; Line 71
les bx,DWORD PTR [bp-6] ;p
mov BYTE PTR es:[bx],0
; Line 72
jmp SHORT $FC955
$FB956:
; Line 74
mov ax,1
; Line 75
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 10
LIBMAIN ENDP
; Line 84
PUBLIC WEP
WEP PROC FAR
push ds
pop ax
nop
inc bp
push bp
mov bp,sp
push ds
mov ds,ax
ASSUME DS: NOTHING
; bSystemExit = 6
; Line 85
mov ax,1
; Line 86
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 2
WEP ENDP
; Line 96
PUBLIC NETBIOSPOSTMESSAGE
NETBIOSPOSTMESSAGE PROC FAR
push ds
pop ax
nop
inc bp
push bp
mov bp,sp
push ds
mov ds,ax
ASSUME DS: NOTHING
sub sp,8
push di
push si
; err = -4
; hWnd = 14
; iMessage = 12
; wParam = 10
; pNcb = 6
; Line 103
les bx,DWORD PTR [bp+6] ;pNcb
test BYTE PTR es:[bx],128
je $L20004
test BYTE PTR [bp+10],2 ;wParam
jne $L20003
; Line 104
; p = -8
; Line 107
$L20004:
jmp $I966
$L20003:
cmp WORD PTR _TableEntriesUsed,12
jne $I968
; Line 108
; Line 109
mov ax,-1
jmp $EX964
; Line 110
; Line 115
$I968:
mov WORD PTR [bp-8],OFFSET DGROUP:_NcbTable ;p
mov WORD PTR [bp-6],ds
jmp SHORT $F969
$FC970:
add WORD PTR [bp-8],8 ;p
$F969:
les bx,DWORD PTR [bp-8] ;p
mov ax,WORD PTR es:[bx+2]
or ax,WORD PTR es:[bx]
jne $FC970
; Line 120
mov ax,WORD PTR [bp+6] ;pNcb
mov dx,WORD PTR [bp+8]
mov WORD PTR es:[bx],ax
mov WORD PTR es:[bx+2],dx
; Line 121
mov cx,WORD PTR [bp+14] ;hWnd
mov WORD PTR es:[bx+4],cx
; Line 122
mov si,WORD PTR [bp+12] ;iMessage
mov WORD PTR es:[bx+6],si
; Line 126
mov es,dx
mov bx,ax
mov ax,WORD PTR _PrivPostRoutine
mov dx,WORD PTR _PrivPostRoutine+2
mov WORD PTR es:[bx+44],ax
mov WORD PTR es:[bx+46],dx
; Line 137
push es
push bx
mov di,cx
call FAR PTR NETBIOSREQUEST
mov WORD PTR [bp-4],ax ;err
cmp ax,255
je $I972
; Line 138
; Line 143
les bx,DWORD PTR [bp-8] ;p
sub ax,ax
mov WORD PTR es:[bx+2],ax
mov WORD PTR es:[bx],ax
; Line 145
push di
push si
$L20002:
les bx,DWORD PTR [bp+6] ;pNcb
mov al,BYTE PTR es:[bx]
sub ah,ah
push ax
push es
push bx
call FAR PTR POSTMESSAGE
; Line 146
; Line 147
jmp SHORT $I973
$I972:
; Line 148
; Line 149
inc WORD PTR _TableEntriesUsed
; Line 150
$I973:
; Line 152
mov ax,WORD PTR [bp-4] ;err
jmp SHORT $EX964
; Line 153
; Line 159
$I966:
push es
push bx
call FAR PTR NETBIOSREQUEST
mov WORD PTR [bp-4],ax ;err
; Line 162
test BYTE PTR [bp+10],1 ;wParam
je $I973
; Line 163
; Line 164
push WORD PTR [bp+14] ;hWnd
push WORD PTR [bp+12] ;iMessage
jmp SHORT $L20002
; Line 168
$EX964:
pop si
pop di
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 10
NETBIOSPOSTMESSAGE ENDP
; Line 189
PUBLIC _PostRoutine
_PostRoutine PROC FAR
push ax
push cx
push dx
push bx
push sp
push bp
push si
push di
push ds
push es
mov bp,sp
sub sp,8
mov ax,DGROUP
mov ds,ax
ASSUME DS: DGROUP
cld
; pncb = -6
; i = -8
; flags = 24
; cs = 22
; ip = 20
; ax = 18
; cx = 16
; dx = 14
; bx = 12
; sp = 10
; bp = 8
; si = 6
; di = 4
; ds = 2
; es = 0
; Line 195
mov ax,WORD PTR [bp] ;es
mov cx,WORD PTR [bp+12] ;bx
mov WORD PTR [bp-6],cx ;pncb
mov WORD PTR [bp-4],ax
; Line 199
mov WORD PTR [bp-8],0 ;i
jmp SHORT $F991
; Line 212
; Line 213
$FC992:
inc WORD PTR [bp-8] ;i
$F991:
mov ax,WORD PTR [bp-8] ;i
cmp WORD PTR _TableEntriesUsed,ax
jbe $FB993
; Line 200
mov bx,ax
mov cl,3
shl bx,cl
les si,DWORD PTR _NcbTablePtr
mov ax,WORD PTR [bp-6] ;pncb
mov dx,WORD PTR [bp-4]
cmp WORD PTR es:[bx][si],ax
jne $FC992
cmp WORD PTR es:[bx+2][si],dx
jne $FC992
; Line 201
; Line 204
dec WORD PTR _TableEntriesUsed
; Line 205
sub cx,cx
mov WORD PTR es:[bx+2][si],cx
mov WORD PTR es:[bx][si],cx
; Line 210
add bx,si
push WORD PTR es:[bx+4]
push WORD PTR es:[bx+6]
mov es,dx
mov bx,ax
mov cl,BYTE PTR es:[bx]
sub ch,ch
push cx
push dx
push ax
call FAR PTR POSTMESSAGE
; Line 211
$FB993:
mov sp,bp
pop es
pop ds
pop di
pop si
pop bp
pop bx
pop bx
pop dx
pop cx
pop ax
iret
_PostRoutine ENDP
_TEXT ENDS
END